home *** CD-ROM | disk | FTP | other *** search
- Subject: v14i082: Flex, a lex replacement, Part04/05
- Newsgroups: comp.sources.unix
- Sender: sources
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Vern Paxson <vern@lbl-csam.arpa>
- Posting-number: Volume 14, Issue 82
- Archive-name: flex/part04
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 4 (of 5)."
- # Contents: scan.c.dist
- # Wrapped by rsalz@fig.bbn.com on Tue May 3 17:31:33 1988
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'scan.c.dist' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'scan.c.dist'\"
- else
- echo shar: Extracting \"'scan.c.dist'\" \(36366 characters\)
- sed "s/^X//" >'scan.c.dist' <<'END_OF_FILE'
- X#define YY_DEFAULT_ACTION YY_FATAL_ERROR( "flex scanner jammed" );
- X#define FLEX_USE_ECS
- X#define FLEX_USE_MECS
- X/* A lexical scanner generated by flex */
- X
- X#include "flexskeldef.h"
- X
- X# line 1 "scan.l"
- X#define INITIAL 0
- X/* scan.l - scanner for flex input */
- X/*
- X * Copyright (c) 1987, the University of California
- X *
- X * The United States Government has rights in this work pursuant to
- X * contract no. DE-AC03-76SF00098 between the United States Department of
- X * Energy and the University of California.
- X *
- X * This program may be redistributed. Enhancements and derivative works
- X * may be created provided the new works, if made available to the general
- X * public, are made available for use by anyone.
- X */
- X# line 16 "scan.l"
- X#include "flexdef.h"
- X#include "parse.h"
- X
- X#define ACTION_ECHO fprintf( temp_action_file, "%s", yytext )
- X#define MARK_END_OF_PROLOG fprintf( temp_action_file, "%%%% end of prolog\n" );
- X
- X#undef YY_DECL
- X#define YY_DECL \
- X int flexscan()
- X
- X#define RETURNCHAR \
- X yylval = yytext[0]; \
- X return ( CHAR );
- X
- X#define RETURNNAME \
- X (void) strcpy( nmstr, yytext ); \
- X return ( NAME );
- X
- X#define PUT_BACK_STRING(str, start) \
- X for ( i = strlen( str ) - 1; i >= start; --i ) \
- X unput(str[i])
- X#define SECT2 2
- X#define SECT2PROLOG 4
- X#define SECT3 6
- X#define CODEBLOCK 8
- X#define PICKUPDEF 10
- X#define SC 12
- X#define CARETISBOL 14
- X#define NUM 16
- X#define QUOTE 18
- X#define FIRSTCCL 20
- X#define CCL 22
- X#define ACTION 24
- X#define RECOVER 26
- X#define BRACEERROR 28
- X#define C_COMMENT 30
- X#define C_COMMENT_2 32
- X#define ACTION_COMMENT 34
- X#define ACTION_STRING 36
- X#define PERCENT_BRACE_ACTION 38
- X# line 53 "scan.l"
- X#define YY_JAM 226
- X#define YY_JAM_BASE 800
- X#define YY_TEMPLATE 227
- static char l[227] =
- X { 0,
- X -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- X -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- X -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- X -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- X 14, 7, 13, 11, 7, 12, 14, 14, 14, 10,
- X 46, 39, 40, 32, 46, 45, 30, 46, 46, 46,
- X 39, 28, 46, 45, 31, 0, 27, 99, 0, 21,
- X 0, 23, 22, 24, 52, 48, 49, 51, 53, 67,
- X 68, 65, 64, 66, 54, 56, 55, 54, 60, 59,
- X 60, 60, 62, 62, 62, 63, 76, 80, 79, 81,
- X
- X 81, 74, 75, 0, 25, 70, 69, 17, 19, 18,
- X 89, 91, 90, 83, 85, 84, 92, 94, 95, 96,
- X 72, 72, 73, 72, 7, 11, 0, 7, 1, 0,
- X 2, 0, 8, 4, 5, 0, 3, 10, 39, 40,
- X 0, 0, 35, 0, 0, 97, 97, 0, 34, 33,
- X 34, 0, 39, 28, 0, 0, 0, 42, 38, 26,
- X 0, 23, 50, 51, 64, 98, 98, 0, 57, 58,
- X 61, 76, 0, 78, 0, 77, 15, 87, 83, 82,
- X 92, 93, 71, 1, 0, 9, 8, 0, 0, 6,
- X 36, 0, 37, 43, 0, 0, 97, 34, 34, 44,
- X
- X 29, 0, 36, 0, 29, 0, 42, 0, 20, 98,
- X 0, 16, 0, 88, 71, 0, 0, 97, 98, 0,
- X 0, 97, 98, 4, 0, 0
- X } ;
- X
- static char e[128] =
- X { 0,
- X 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- X 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- X 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- X 1, 2, 1, 4, 5, 6, 7, 1, 8, 9,
- X 9, 10, 9, 11, 12, 9, 13, 14, 15, 15,
- X 15, 15, 15, 15, 15, 15, 15, 1, 1, 16,
- X 1, 17, 9, 1, 23, 22, 22, 22, 22, 22,
- X 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
- X 22, 24, 25, 26, 22, 22, 22, 27, 22, 22,
- X 18, 19, 20, 21, 22, 1, 23, 22, 22, 22,
- X
- X 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
- X 22, 22, 22, 24, 25, 26, 22, 22, 22, 27,
- X 22, 22, 28, 29, 30, 1, 1
- X } ;
- X
- static char m[31] =
- X { 0,
- X 1, 2, 3, 4, 1, 1, 1, 5, 1, 6,
- X 1, 1, 5, 7, 7, 1, 1, 1, 8, 9,
- X 1, 7, 7, 7, 7, 7, 7, 5, 1, 10
- X } ;
- X
- static short int b[276] =
- X { 0,
- X 0, 26, 52, 80, 286, 285, 0, 0, 284, 1,
- X 3, 7, 99, 116, 265, 264, 141, 169, 11, 13,
- X 0, 22, 25, 47, 197, 225, 281, 280, 8, 10,
- X 32, 54, 66, 69, 75, 85, 88, 99, 110, 112,
- X 800, 280, 800, 0, 44, 800, 277, 104, 269, 0,
- X 800, 144, 800, 800, 71, 800, 800, 259, 83, 242,
- X 268, 800, 270, 266, 800, 271, 0, 800, 270, 800,
- X 33, 0, 270, 800, 800, 800, 242, 0, 800, 800,
- X 800, 800, 91, 800, 800, 800, 800, 114, 800, 800,
- X 116, 250, 800, 0, 136, 800, 0, 800, 800, 126,
- X
- X 251, 800, 800, 257, 800, 800, 800, 150, 800, 246,
- X 151, 800, 245, 0, 800, 241, 0, 800, 800, 0,
- X 249, 156, 800, 145, 249, 0, 247, 162, 800, 246,
- X 800, 245, 0, 219, 800, 234, 800, 0, 167, 800,
- X 206, 229, 800, 147, 165, 800, 162, 0, 0, 800,
- X 284, 165, 313, 800, 178, 179, 184, 0, 800, 800,
- X 218, 0, 800, 0, 178, 800, 180, 0, 800, 800,
- X 800, 0, 190, 800, 0, 800, 216, 187, 0, 800,
- X 0, 800, 0, 800, 185, 800, 0, 139, 146, 800,
- X 800, 133, 800, 800, 188, 100, 197, 0, 0, 800,
- X
- X 800, 210, 201, 213, 800, 212, 0, 97, 800, 203,
- X 91, 800, 74, 800, 0, 51, 216, 209, 225, 34,
- X 227, 800, 800, 800, 224, 800, 342, 352, 362, 372,
- X 382, 392, 402, 412, 422, 432, 442, 452, 462, 472,
- X 482, 492, 502, 512, 13, 522, 532, 542, 11, 552,
- X 562, 572, 582, 592, 602, 0, 612, 622, 632, 642,
- X 651, 661, 671, 681, 691, 701, 711, 721, 731, 740,
- X 750, 760, 770, 780, 790
- X } ;
- X
- static short int d[276] =
- X { 0,
- X 227, 227, 228, 228, 229, 229, 230, 230, 231, 231,
- X 232, 232, 233, 233, 226, 226, 234, 234, 235, 235,
- X 236, 236, 237, 237, 238, 238, 239, 239, 226, 226,
- X 240, 240, 241, 241, 242, 242, 243, 243, 244, 244,
- X 226, 226, 226, 245, 246, 226, 247, 248, 226, 249,
- X 226, 226, 226, 226, 226, 226, 226, 250, 251, 252,
- X 253, 226, 226, 226, 226, 229, 254, 226, 231, 226,
- X 231, 255, 226, 226, 226, 226, 226, 256, 226, 226,
- X 226, 226, 226, 226, 226, 226, 226, 251, 226, 226,
- X 257, 258, 226, 259, 251, 226, 260, 226, 226, 261,
- X
- X 226, 226, 226, 239, 226, 226, 226, 240, 226, 226,
- X 241, 226, 226, 262, 226, 226, 263, 226, 226, 264,
- X 244, 244, 226, 244, 226, 245, 246, 246, 226, 247,
- X 226, 265, 266, 226, 226, 267, 226, 249, 226, 226,
- X 226, 268, 226, 250, 250, 226, 226, 251, 269, 226,
- X 269, 253, 253, 226, 253, 253, 270, 271, 226, 226,
- X 272, 255, 226, 256, 226, 226, 226, 257, 226, 226,
- X 226, 260, 261, 226, 261, 226, 273, 274, 262, 226,
- X 263, 226, 275, 226, 265, 226, 266, 226, 267, 226,
- X 226, 268, 226, 226, 250, 250, 226, 269, 151, 226,
- X
- X 226, 253, 253, 270, 226, 270, 271, 272, 226, 226,
- X 273, 226, 274, 226, 275, 226, 250, 226, 226, 226,
- X 250, 226, 226, 226, 250,-32767, 226, 226, 226, 226,
- X 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
- X 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
- X 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
- X 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
- X 226, 226, 226, 226, 226
- X } ;
- X
- static short int n[831] =
- X { 0,
- X 226, 42, 43, 70, 73, 74, 164, 71, 73, 74,
- X 106, 90, 106, 86, 87, 86, 87, 138, 91, 126,
- X 92, 44, 44, 44, 44, 44, 44, 45, 46, 88,
- X 47, 88, 48, 90, 109, 70, 94, 107, 49, 107,
- X 91, 110, 92, 95, 96, 128, 129, 50, 50, 50,
- X 50, 50, 50, 52, 53, 54, 109, 55, 94, 224,
- X 56, 56, 161, 110, 56, 95, 96, 57, 112, 58,
- X 59, 112, 143, 143, 220, 113, 214, 115, 113, 60,
- X 56, 61, 62, 54, 116, 55, 63, 115, 56, 56,
- X 118, 119, 64, 212, 116, 57, 147, 58, 59, 209,
- X
- X 65, 118, 119, 148, 165, 165, 120, 60, 56, 76,
- X 133, 122, 123, 122, 123, 77, 124, 120, 124, 144,
- X 78, 78, 78, 78, 78, 78, 76, 147, 134, 167,
- X 135, 136, 77, 174, 148, 193, 168, 78, 78, 78,
- X 78, 78, 78, 81, 175, 139, 140, 226, 190, 147,
- X 141, 82, 226, 226, 83, 83, 148, 122, 226, 226,
- X 226, 216, 124, 128, 129, 145, 194, 201, 139, 140,
- X 84, 81, 142, 141, 183, 197, 197, 202, 195, 82,
- X 201, 201, 83, 83, 144, 196, 205, 186, 159, 214,
- X 202, 165, 165, 210, 210, 142, 206, 174, 84, 98,
- X
- X 99, 217, 217, 201, 100, 203, 145, 194, 175, 101,
- X 218, 218, 201, 202, 205, 205, 219, 219, 212, 226,
- X 209, 192, 222, 222, 102, 206, 103, 98, 99, 221,
- X 221, 193, 100, 191, 145, 194, 190, 101, 223, 223,
- X 225, 225, 145, 194, 188, 145, 194, 186, 131, 184,
- X 125, 226, 102, 180, 103, 150, 150, 178, 177, 105,
- X 176, 170, 163, 151, 151, 151, 151, 151, 151, 153,
- X 154, 73, 70, 67, 155, 159, 158, 145, 137, 131,
- X 156, 125, 105, 105, 79, 79, 70, 67, 67, 226,
- X 226, 226, 226, 226, 226, 226, 157, 199, 199, 226,
- X
- X 226, 226, 226, 226, 226, 199, 199, 199, 199, 199,
- X 199, 226, 226, 200, 153, 154, 226, 226, 226, 155,
- X 226, 226, 226, 226, 226, 156, 226, 226, 226, 226,
- X 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
- X 226, 157, 41, 41, 41, 41, 41, 41, 41, 41,
- X 41, 41, 51, 51, 51, 51, 51, 51, 51, 51,
- X 51, 51, 66, 66, 66, 66, 66, 66, 66, 66,
- X 66, 66, 68, 68, 68, 68, 68, 68, 68, 68,
- X 68, 68, 69, 69, 69, 69, 69, 69, 69, 69,
- X 69, 69, 72, 72, 72, 72, 72, 72, 72, 72,
- X
- X 72, 72, 75, 75, 226, 75, 75, 75, 75, 75,
- X 75, 75, 80, 80, 80, 80, 80, 80, 80, 80,
- X 80, 80, 85, 85, 85, 85, 85, 85, 85, 85,
- X 85, 85, 89, 89, 226, 89, 89, 89, 89, 89,
- X 89, 89, 93, 93, 226, 93, 93, 93, 93, 93,
- X 93, 93, 97, 97, 97, 97, 97, 97, 97, 97,
- X 97, 97, 104, 104, 104, 104, 104, 104, 104, 104,
- X 104, 104, 108, 108, 108, 108, 108, 108, 108, 108,
- X 108, 108, 111, 111, 111, 111, 111, 111, 111, 111,
- X 111, 111, 114, 114, 114, 114, 114, 114, 114, 114,
- X
- X 114, 114, 117, 117, 117, 117, 117, 117, 117, 117,
- X 117, 117, 121, 121, 121, 121, 121, 121, 121, 121,
- X 121, 121, 127, 127, 127, 127, 127, 127, 127, 127,
- X 127, 127, 130, 130, 130, 130, 130, 130, 130, 130,
- X 130, 130, 132, 132, 132, 132, 132, 132, 132, 132,
- X 132, 132, 144, 144, 226, 144, 144, 144, 144, 144,
- X 226, 144, 146, 146, 226, 146, 146, 146, 146, 146,
- X 146, 146, 149, 149, 226, 149, 149, 149, 149, 149,
- X 149, 149, 152, 152, 152, 152, 152, 152, 152, 152,
- X 152, 152, 160, 226, 226, 160, 160, 160, 160, 160,
- X
- X 160, 160, 162, 162, 226, 162, 162, 162, 162, 162,
- X 162, 162, 166, 166, 226, 166, 166, 166, 166, 166,
- X 166, 166, 169, 169, 226, 169, 169, 169, 169, 169,
- X 169, 169, 171, 171, 226, 171, 171, 171, 171, 171,
- X 226, 171, 172, 172, 226, 226, 226, 172, 172, 172,
- X 172, 173, 173, 226, 173, 173, 173, 173, 173, 173,
- X 173, 179, 179, 226, 179, 179, 226, 179, 179, 179,
- X 179, 181, 181, 226, 226, 181, 181, 181, 226, 181,
- X 181, 182, 182, 226, 182, 182, 182, 182, 182, 182,
- X 182, 185, 185, 185, 185, 185, 185, 185, 185, 185,
- X
- X 185, 187, 187, 226, 187, 187, 187, 187, 187, 187,
- X 187, 189, 189, 189, 189, 189, 189, 189, 189, 189,
- X 189, 192, 192, 192, 192, 192, 192, 192, 192, 192,
- X 192, 198, 198, 226, 198, 198, 198, 198, 198, 198,
- X 204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
- X 207, 207, 226, 207, 207, 207, 207, 207, 207, 207,
- X 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
- X 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- X 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- X 215, 215, 226, 215, 215, 215, 215, 215, 215, 215,
- X
- X 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
- X 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
- X 226, 226, 226, 226, 226, 226, 226, 226, 226, 226
- X } ;
- X
- static short int c[831] =
- X { 0,
- X 0, 1, 1, 10, 11, 11, 256, 10, 12, 12,
- X 29, 21, 30, 19, 19, 20, 20, 249, 21, 245,
- X 21, 1, 1, 1, 1, 1, 1, 2, 2, 19,
- X 2, 20, 2, 22, 31, 71, 23, 29, 2, 30,
- X 22, 31, 22, 23, 23, 45, 45, 2, 2, 2,
- X 2, 2, 2, 3, 3, 3, 32, 3, 24, 220,
- X 3, 3, 71, 32, 3, 24, 24, 3, 33, 3,
- X 3, 34, 55, 55, 216, 33, 213, 35, 34, 3,
- X 3, 4, 4, 4, 35, 4, 4, 36, 4, 4,
- X 37, 37, 4, 211, 36, 4, 59, 4, 4, 208,
- X
- X 4, 38, 38, 59, 83, 83, 37, 4, 4, 13,
- X 48, 39, 39, 40, 40, 13, 39, 38, 40, 196,
- X 13, 13, 13, 13, 13, 13, 14, 88, 48, 91,
- X 48, 48, 14, 100, 88, 192, 91, 14, 14, 14,
- X 14, 14, 14, 17, 100, 52, 52, 124, 189, 95,
- X 52, 17, 108, 111, 17, 17, 95, 122, 122, 108,
- X 111, 188, 122, 128, 128, 144, 144, 152, 139, 139,
- X 17, 18, 52, 139, 124, 147, 147, 152, 145, 18,
- X 155, 156, 18, 18, 145, 145, 157, 185, 156, 178,
- X 155, 165, 165, 167, 167, 139, 157, 173, 18, 25,
- X
- X 25, 195, 195, 203, 25, 155, 195, 195, 173, 25,
- X 197, 197, 202, 203, 206, 204, 210, 210, 177, 202,
- X 161, 206, 218, 218, 25, 204, 25, 26, 26, 217,
- X 217, 142, 26, 141, 217, 217, 136, 26, 219, 219,
- X 221, 221, 225, 225, 134, 221, 221, 132, 130, 127,
- X 125, 121, 26, 116, 26, 60, 60, 113, 110, 104,
- X 101, 92, 77, 60, 60, 60, 60, 60, 60, 61,
- X 61, 73, 69, 66, 61, 64, 63, 58, 49, 47,
- X 61, 42, 28, 27, 16, 15, 9, 6, 5, 0,
- X 0, 0, 0, 0, 0, 0, 61, 151, 151, 0,
- X
- X 0, 0, 0, 0, 0, 151, 151, 151, 151, 151,
- X 151, 0, 0, 151, 153, 153, 0, 0, 0, 153,
- X 0, 0, 0, 0, 0, 153, 0, 0, 0, 0,
- X 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- X 0, 153, 227, 227, 227, 227, 227, 227, 227, 227,
- X 227, 227, 228, 228, 228, 228, 228, 228, 228, 228,
- X 228, 228, 229, 229, 229, 229, 229, 229, 229, 229,
- X 229, 229, 230, 230, 230, 230, 230, 230, 230, 230,
- X 230, 230, 231, 231, 231, 231, 231, 231, 231, 231,
- X 231, 231, 232, 232, 232, 232, 232, 232, 232, 232,
- X
- X 232, 232, 233, 233, 0, 233, 233, 233, 233, 233,
- X 233, 233, 234, 234, 234, 234, 234, 234, 234, 234,
- X 234, 234, 235, 235, 235, 235, 235, 235, 235, 235,
- X 235, 235, 236, 236, 0, 236, 236, 236, 236, 236,
- X 236, 236, 237, 237, 0, 237, 237, 237, 237, 237,
- X 237, 237, 238, 238, 238, 238, 238, 238, 238, 238,
- X 238, 238, 239, 239, 239, 239, 239, 239, 239, 239,
- X 239, 239, 240, 240, 240, 240, 240, 240, 240, 240,
- X 240, 240, 241, 241, 241, 241, 241, 241, 241, 241,
- X 241, 241, 242, 242, 242, 242, 242, 242, 242, 242,
- X
- X 242, 242, 243, 243, 243, 243, 243, 243, 243, 243,
- X 243, 243, 244, 244, 244, 244, 244, 244, 244, 244,
- X 244, 244, 246, 246, 246, 246, 246, 246, 246, 246,
- X 246, 246, 247, 247, 247, 247, 247, 247, 247, 247,
- X 247, 247, 248, 248, 248, 248, 248, 248, 248, 248,
- X 248, 248, 250, 250, 0, 250, 250, 250, 250, 250,
- X 0, 250, 251, 251, 0, 251, 251, 251, 251, 251,
- X 251, 251, 252, 252, 0, 252, 252, 252, 252, 252,
- X 252, 252, 253, 253, 253, 253, 253, 253, 253, 253,
- X 253, 253, 254, 0, 0, 254, 254, 254, 254, 254,
- X
- X 254, 254, 255, 255, 0, 255, 255, 255, 255, 255,
- X 255, 255, 257, 257, 0, 257, 257, 257, 257, 257,
- X 257, 257, 258, 258, 0, 258, 258, 258, 258, 258,
- X 258, 258, 259, 259, 0, 259, 259, 259, 259, 259,
- X 0, 259, 260, 260, 0, 0, 0, 260, 260, 260,
- X 260, 261, 261, 0, 261, 261, 261, 261, 261, 261,
- X 261, 262, 262, 0, 262, 262, 0, 262, 262, 262,
- X 262, 263, 263, 0, 0, 263, 263, 263, 0, 263,
- X 263, 264, 264, 0, 264, 264, 264, 264, 264, 264,
- X 264, 265, 265, 265, 265, 265, 265, 265, 265, 265,
- X
- X 265, 266, 266, 0, 266, 266, 266, 266, 266, 266,
- X 266, 267, 267, 267, 267, 267, 267, 267, 267, 267,
- X 267, 268, 268, 268, 268, 268, 268, 268, 268, 268,
- X 268, 269, 269, 0, 269, 269, 269, 269, 269, 269,
- X 270, 270, 270, 270, 270, 270, 270, 270, 270, 270,
- X 271, 271, 0, 271, 271, 271, 271, 271, 271, 271,
- X 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
- X 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
- X 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
- X 275, 275, 0, 275, 275, 275, 275, 275, 275, 275,
- X
- X 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
- X 226, 226, 226, 226, 226, 226, 226, 226, 226, 226,
- X 226, 226, 226, 226, 226, 226, 226, 226, 226, 226
- X } ;
- X
- X
- X/* these declarations have to come after the section 1 code or lint gets
- X * confused about whether the variables are used
- X */
- XFILE *yyin = stdin, *yyout = stdout;
- X
- X/* these variables are all declared out here so that section 3 code can
- X * manipulate them
- X */
- static int yy_start, yy_b_buf_p, yy_c_buf_p, yy_e_buf_p;
- static int yy_saw_eof, yy_init = 1;
- X
- X/* yy_ch_buf has to be 1 character longer than YY_BUF_SIZE, since when
- X * setting up yytext we can try to put a '\0' just past the end of the
- X * matched text
- X */
- static char yy_ch_buf[YY_BUF_SIZE + 1];
- static int yy_st_buf[YY_BUF_SIZE];
- static char yy_hold_char;
- char *yytext;
- static int yyleng;
- X
- YY_DECL
- X {
- X int yy_n_chars, yy_lp, yy_iii, yy_buf_pos, yy_act;
- X
- X
- X static int bracelevel, didadef;
- X int i, cclval;
- X char nmdef[MAXLINE], myesc();
- X
- X
- X if ( yy_init )
- X {
- X YY_INIT;
- X yy_start = 1;
- X yy_init = 0;
- X }
- X
- X goto get_next_token;
- X
- do_action:
- X for ( ; ; )
- X {
- X YY_DO_BEFORE_ACTION
- X
- X#ifdef FLEX_DEBUG
- X fprintf( stderr, "--accepting rule #%d\n", yy_act );
- X#endif
- X switch ( yy_act )
- X {
- case 1:
- X# line 58 "scan.l"
- X++linenum; ECHO; /* indented code */
- X YY_BREAK
- case 2:
- X# line 59 "scan.l"
- X++linenum; ECHO; /* treat as a comment */
- X YY_BREAK
- case 3:
- X# line 60 "scan.l"
- ECHO; BEGIN(C_COMMENT);
- X YY_BREAK
- case 4:
- X# line 61 "scan.l"
- return ( SCDECL );
- X YY_BREAK
- case 5:
- X# line 62 "scan.l"
- return ( XSCDECL );
- X YY_BREAK
- case 6:
- X# line 63 "scan.l"
- X++linenum; line_directive_out( stdout ); BEGIN(CODEBLOCK);
- X YY_BREAK
- case 7:
- X# line 64 "scan.l"
- return ( WHITESPACE );
- X YY_BREAK
- case 8:
- X# line 66 "scan.l"
- X{
- X sectnum = 2;
- X line_directive_out( stdout );
- X BEGIN(SECT2PROLOG);
- X return ( SECTEND );
- X }
- X YY_BREAK
- case 9:
- X# line 73 "scan.l"
- X{
- X fprintf( stderr,
- X "old-style lex command at line %d ignored:\n\t%s",
- X linenum, yytext );
- X ++linenum;
- X }
- X YY_BREAK
- case 10:
- X# line 80 "scan.l"
- X{
- X (void) strcpy( nmstr, yytext );
- X didadef = false;
- X BEGIN(PICKUPDEF);
- X }
- X YY_BREAK
- case 11:
- X# line 86 "scan.l"
- RETURNNAME;
- X YY_BREAK
- case 12:
- X# line 87 "scan.l"
- X++linenum; /* allows blank lines in section 1 */
- X YY_BREAK
- case 13:
- X# line 88 "scan.l"
- X++linenum; return ( '\n' );
- X YY_BREAK
- case 14:
- X# line 89 "scan.l"
- synerr( "illegal character" ); BEGIN(RECOVER);
- X YY_BREAK
- case 15:
- X# line 92 "scan.l"
- ECHO; BEGIN(0);
- X YY_BREAK
- case 16:
- X# line 93 "scan.l"
- X++linenum; ECHO; BEGIN(0);
- X YY_BREAK
- case 17:
- X# line 94 "scan.l"
- ECHO;
- X YY_BREAK
- case 18:
- X# line 95 "scan.l"
- ECHO;
- X YY_BREAK
- case 19:
- X# line 96 "scan.l"
- X++linenum; ECHO;
- X YY_BREAK
- case 20:
- X# line 98 "scan.l"
- X++linenum; BEGIN(0);
- X YY_BREAK
- case 21:
- X# line 99 "scan.l"
- X++linenum; ECHO;
- X YY_BREAK
- case 22:
- X# line 101 "scan.l"
- X/* separates name and definition */
- X YY_BREAK
- case 23:
- X# line 103 "scan.l"
- X{
- X (void) strcpy( nmdef, yytext );
- X
- X for ( i = strlen( nmdef ) - 1;
- X i >= 0 &&
- X nmdef[i] == ' ' || nmdef[i] == '\t';
- X --i )
- X ;
- X
- X nmdef[i + 1] = '\0';
- X
- X ndinstal( nmstr, nmdef );
- X didadef = true;
- X }
- X YY_BREAK
- case 24:
- X# line 118 "scan.l"
- X{
- X if ( ! didadef )
- X synerr( "incomplete name definition" );
- X BEGIN(0);
- X ++linenum;
- X }
- X YY_BREAK
- case 25:
- X# line 125 "scan.l"
- X++linenum; BEGIN(0); RETURNNAME;
- X YY_BREAK
- case 26:
- YY_DO_BEFORE_SCAN; /* undo effects of setting up yytext */
- yy_c_buf_p -= 1;
- YY_DO_BEFORE_ACTION; /* set up yytext again */
- X# line 128 "scan.l"
- X{
- X ++linenum;
- X ACTION_ECHO;
- X MARK_END_OF_PROLOG;
- X BEGIN(SECT2);
- X }
- X YY_BREAK
- case 27:
- X# line 135 "scan.l"
- X++linenum; ACTION_ECHO;
- X YY_BREAK
- case 28:
- X# line 137 "scan.l"
- X++linenum; /* allow blank lines in section 2 */
- X YY_BREAK
- X /* this horrible mess of a rule matches indented lines which
- X * do not contain "/*". We need to make the distinction because
- X * otherwise this rule will be taken instead of the rule which
- X * matches the beginning of comments like this one
- X */
- case 29:
- X# line 144 "scan.l"
- X{
- X synerr( "indented code found outside of action" );
- X ++linenum;
- X }
- X YY_BREAK
- case 30:
- X# line 149 "scan.l"
- BEGIN(SC); return ( '<' );
- X YY_BREAK
- case 31:
- X# line 150 "scan.l"
- return ( '^' );
- X YY_BREAK
- case 32:
- X# line 151 "scan.l"
- BEGIN(QUOTE); return ( '"' );
- X YY_BREAK
- case 33:
- YY_DO_BEFORE_SCAN; /* undo effects of setting up yytext */
- yy_c_buf_p = yy_b_buf_p;
- YY_DO_BEFORE_ACTION; /* set up yytext again */
- X# line 152 "scan.l"
- BEGIN(NUM); return ( '{' );
- X YY_BREAK
- case 34:
- X# line 153 "scan.l"
- BEGIN(BRACEERROR);
- X YY_BREAK
- case 35:
- YY_DO_BEFORE_SCAN; /* undo effects of setting up yytext */
- yy_c_buf_p = yy_b_buf_p;
- YY_DO_BEFORE_ACTION; /* set up yytext again */
- X# line 154 "scan.l"
- return ( '$' );
- X YY_BREAK
- case 36:
- X# line 156 "scan.l"
- X{
- X bracelevel = 1;
- X BEGIN(PERCENT_BRACE_ACTION);
- X return ( '\n' );
- X }
- X YY_BREAK
- case 37:
- X# line 161 "scan.l"
- X++linenum; return ( '\n' );
- X YY_BREAK
- case 38:
- X# line 163 "scan.l"
- ACTION_ECHO; BEGIN(C_COMMENT_2);
- X YY_BREAK
- case 39:
- X# line 165 "scan.l"
- X{ /* needs to be separate from following rule due to
- X * bug with trailing context
- X */
- X bracelevel = 0;
- X BEGIN(ACTION);
- X return ( '\n' );
- X }
- X YY_BREAK
- case 40:
- YY_DO_BEFORE_SCAN; /* undo effects of setting up yytext */
- yy_c_buf_p -= 1;
- YY_DO_BEFORE_ACTION; /* set up yytext again */
- X# line 173 "scan.l"
- X{
- X bracelevel = 0;
- X BEGIN(ACTION);
- X return ( '\n' );
- X }
- X YY_BREAK
- case 41:
- X# line 179 "scan.l"
- X++linenum; return ( '\n' );
- X YY_BREAK
- case 42:
- X# line 181 "scan.l"
- X{
- X /* guarantee that the SECT3 rule will have something
- X * to match
- X */
- X yyless(1);
- X sectnum = 3;
- X BEGIN(SECT3);
- X return ( EOF ); /* to stop the parser */
- X }
- X YY_BREAK
- case 43:
- X# line 191 "scan.l"
- X{
- X (void) strcpy( nmstr, yytext );
- X
- X /* check to see if we've already encountered this ccl */
- X if ( (cclval = ccllookup( nmstr )) )
- X {
- X yylval = cclval;
- X ++cclreuse;
- X return ( PREVCCL );
- X }
- X else
- X {
- X /* we fudge a bit. We know that this ccl will
- X * soon be numbered as lastccl + 1 by cclinit
- X */
- X cclinstal( nmstr, lastccl + 1 );
- X
- X /* push back everything but the leading bracket
- X * so the ccl can be rescanned
- X */
- X PUT_BACK_STRING(nmstr, 1);
- X
- X BEGIN(FIRSTCCL);
- X return ( '[' );
- X }
- X }
- X YY_BREAK
- case 44:
- X# line 218 "scan.l"
- X{
- X register char *nmdefptr;
- X char *ndlookup();
- X
- X (void) strcpy( nmstr, yytext );
- X nmstr[yyleng - 1] = '\0'; /* chop trailing brace */
- X
- X /* lookup from "nmstr + 1" to chop leading brace */
- X if ( ! (nmdefptr = ndlookup( nmstr + 1 )) )
- X synerr( "undefined {name}" );
- X
- X else
- X { /* push back name surrounded by ()'s */
- X unput(')');
- X PUT_BACK_STRING(nmdefptr, 0);
- X unput('(');
- X }
- X }
- X YY_BREAK
- case 45:
- X# line 237 "scan.l"
- return ( yytext[0] );
- X YY_BREAK
- case 46:
- X# line 238 "scan.l"
- RETURNCHAR;
- X YY_BREAK
- case 47:
- X# line 239 "scan.l"
- X++linenum; return ( '\n' );
- X YY_BREAK
- case 48:
- X# line 242 "scan.l"
- return ( ',' );
- X YY_BREAK
- case 49:
- X# line 243 "scan.l"
- BEGIN(SECT2); return ( '>' );
- X YY_BREAK
- case 50:
- YY_DO_BEFORE_SCAN; /* undo effects of setting up yytext */
- yy_c_buf_p = yy_b_buf_p;
- YY_DO_BEFORE_ACTION; /* set up yytext again */
- X# line 244 "scan.l"
- BEGIN(CARETISBOL); return ( '>' );
- X YY_BREAK
- case 51:
- X# line 245 "scan.l"
- RETURNNAME;
- X YY_BREAK
- case 52:
- X# line 246 "scan.l"
- synerr( "bad start condition name" );
- X YY_BREAK
- case 53:
- X# line 248 "scan.l"
- BEGIN(SECT2); return ( '^' );
- X YY_BREAK
- case 54:
- X# line 251 "scan.l"
- RETURNCHAR;
- X YY_BREAK
- case 55:
- X# line 252 "scan.l"
- BEGIN(SECT2); return ( '"' );
- X YY_BREAK
- case 56:
- X# line 254 "scan.l"
- X{
- X synerr( "missing quote" );
- X BEGIN(SECT2);
- X ++linenum;
- X return ( '"' );
- X }
- X YY_BREAK
- case 57:
- YY_DO_BEFORE_SCAN; /* undo effects of setting up yytext */
- yy_c_buf_p = yy_b_buf_p;
- YY_DO_BEFORE_ACTION; /* set up yytext again */
- X# line 262 "scan.l"
- BEGIN(CCL); return ( '^' );
- X YY_BREAK
- case 58:
- YY_DO_BEFORE_SCAN; /* undo effects of setting up yytext */
- yy_c_buf_p = yy_b_buf_p;
- YY_DO_BEFORE_ACTION; /* set up yytext again */
- X# line 263 "scan.l"
- return ( '^' );
- X YY_BREAK
- case 59:
- X# line 264 "scan.l"
- BEGIN(CCL); yylval = '-'; return ( CHAR );
- X YY_BREAK
- case 60:
- X# line 265 "scan.l"
- BEGIN(CCL); RETURNCHAR;
- X YY_BREAK
- case 61:
- YY_DO_BEFORE_SCAN; /* undo effects of setting up yytext */
- yy_c_buf_p = yy_b_buf_p;
- YY_DO_BEFORE_ACTION; /* set up yytext again */
- X# line 267 "scan.l"
- return ( '-' );
- X YY_BREAK
- case 62:
- X# line 268 "scan.l"
- RETURNCHAR;
- X YY_BREAK
- case 63:
- X# line 269 "scan.l"
- BEGIN(SECT2); return ( ']' );
- X YY_BREAK
- case 64:
- X# line 272 "scan.l"
- X{
- X yylval = myctoi( yytext );
- X return ( NUMBER );
- X }
- X YY_BREAK
- case 65:
- X# line 277 "scan.l"
- return ( ',' );
- X YY_BREAK
- case 66:
- X# line 278 "scan.l"
- BEGIN(SECT2); return ( '}' );
- X YY_BREAK
- case 67:
- X# line 280 "scan.l"
- X{
- X synerr( "bad character inside {}'s" );
- X BEGIN(SECT2);
- X return ( '}' );
- X }
- X YY_BREAK
- case 68:
- X# line 286 "scan.l"
- X{
- X synerr( "missing }" );
- X BEGIN(SECT2);
- X ++linenum;
- X return ( '}' );
- X }
- X YY_BREAK
- case 69:
- X# line 294 "scan.l"
- synerr( "bad name in {}'s" ); BEGIN(SECT2);
- X YY_BREAK
- case 70:
- X# line 295 "scan.l"
- synerr( "missing }" ); ++linenum; BEGIN(SECT2);
- X YY_BREAK
- case 71:
- X# line 298 "scan.l"
- bracelevel = 0;
- X YY_BREAK
- case 72:
- X# line 299 "scan.l"
- ACTION_ECHO;
- X YY_BREAK
- case 73:
- X# line 300 "scan.l"
- X{
- X ++linenum;
- X ACTION_ECHO;
- X if ( bracelevel == 0 )
- X {
- X fputs( "\tYY_BREAK\n", temp_action_file );
- X BEGIN(SECT2);
- X }
- X }
- X YY_BREAK
- case 74:
- X# line 310 "scan.l"
- ACTION_ECHO; ++bracelevel;
- X YY_BREAK
- case 75:
- X# line 311 "scan.l"
- ACTION_ECHO; --bracelevel;
- X YY_BREAK
- case 76:
- X# line 312 "scan.l"
- ACTION_ECHO;
- X YY_BREAK
- case 77:
- X# line 313 "scan.l"
- ACTION_ECHO; BEGIN(ACTION_COMMENT);
- X YY_BREAK
- case 78:
- X# line 314 "scan.l"
- ACTION_ECHO; /* character constant */
- X YY_BREAK
- case 79:
- X# line 315 "scan.l"
- ACTION_ECHO; BEGIN(ACTION_STRING);
- X YY_BREAK
- case 80:
- X# line 316 "scan.l"
- X{
- X ++linenum;
- X ACTION_ECHO;
- X if ( bracelevel == 0 )
- X {
- X fputs( "\tYY_BREAK\n", temp_action_file );
- X BEGIN(SECT2);
- X }
- X }
- X YY_BREAK
- case 81:
- X# line 325 "scan.l"
- ACTION_ECHO;
- X YY_BREAK
- case 82:
- X# line 327 "scan.l"
- ACTION_ECHO; BEGIN(ACTION);
- X YY_BREAK
- case 83:
- X# line 328 "scan.l"
- ACTION_ECHO;
- X YY_BREAK
- case 84:
- X# line 329 "scan.l"
- ACTION_ECHO;
- X YY_BREAK
- case 85:
- X# line 330 "scan.l"
- X++linenum; ACTION_ECHO;
- X YY_BREAK
- case 86:
- X# line 331 "scan.l"
- ACTION_ECHO;
- X YY_BREAK
- case 87:
- X# line 333 "scan.l"
- ACTION_ECHO; BEGIN(SECT2);
- X YY_BREAK
- case 88:
- X# line 334 "scan.l"
- X++linenum; ACTION_ECHO; BEGIN(SECT2);
- X YY_BREAK
- case 89:
- X# line 335 "scan.l"
- ACTION_ECHO;
- X YY_BREAK
- case 90:
- X# line 336 "scan.l"
- ACTION_ECHO;
- X YY_BREAK
- case 91:
- X# line 337 "scan.l"
- X++linenum; ACTION_ECHO;
- X YY_BREAK
- case 92:
- X# line 339 "scan.l"
- ACTION_ECHO;
- X YY_BREAK
- case 93:
- X# line 340 "scan.l"
- ACTION_ECHO;
- X YY_BREAK
- case 94:
- X# line 341 "scan.l"
- X++linenum; ACTION_ECHO;
- X YY_BREAK
- case 95:
- X# line 342 "scan.l"
- ACTION_ECHO; BEGIN(ACTION);
- X YY_BREAK
- case 96:
- X# line 343 "scan.l"
- ACTION_ECHO;
- X YY_BREAK
- case 97:
- X# line 346 "scan.l"
- X{
- X yylval = myesc( yytext );
- X return ( CHAR );
- X }
- X YY_BREAK
- case 98:
- X# line 351 "scan.l"
- X{
- X yylval = myesc( yytext );
- X BEGIN(CCL);
- X return ( CHAR );
- X }
- X YY_BREAK
- case 99:
- X# line 358 "scan.l"
- X{
- X register int numchars;
- X
- X /* black magic - we know the names of a flex scanner's
- X * internal variables. We cap the input buffer with
- X * an end-of-string and dump it to the output.
- X */
- X YY_DO_BEFORE_SCAN; /* recover from setting up yytext */
- X
- X#ifdef FLEX_FAST_SKEL
- X fputs( yy_c_buf_p + 1, stdout );
- X#else
- X yy_ch_buf[yy_e_buf_p + 1] = '\0';
- X
- X /* ignore the first character; it's the second '%'
- X * put back by the yyless(1) above
- X */
- X fputs( yy_ch_buf + yy_c_buf_p + 1, stdout );
- X#endif
- X
- X /* if we don't do this, the data written by write()
- X * can get overwritten when stdout is finally flushed
- X */
- X (void) fflush( stdout );
- X
- X while ( (numchars = read( fileno(yyin), yy_ch_buf,
- X YY_BUF_MAX )) > 0 )
- X (void) write( fileno(stdout), yy_ch_buf, numchars );
- X
- X if ( numchars < 0 )
- X flexerror( "fatal read error in section 3" );
- X
- X return ( EOF );
- X }
- X YY_BREAK
- X
- case YY_NEW_FILE:
- break; /* begin reading from new file */
- X
- case YY_DO_DEFAULT:
- YY_DEFAULT_ACTION;
- break;
- X
- case YY_END_TOK:
- return ( YY_END_TOK );
- X
- default:
- YY_FATAL_ERROR( "fatal flex scanner internal error" );
- X }
- X
- get_next_token:
- X {
- X register int yy_curst;
- X register char yy_sym;
- X
- X YY_DO_BEFORE_SCAN
- X
- X /* set up to begin running DFA */
- X
- X yy_curst = yy_start;
- X
- X if ( yy_ch_buf[yy_c_buf_p] == '\n' )
- X ++yy_curst;
- X
- X /* yy_b_buf_p points to the position in yy_ch_buf
- X * of the start of the current run.
- X */
- X
- X yy_b_buf_p = yy_c_buf_p + 1;
- X
- X do /* until the machine jams */
- X {
- X if ( yy_c_buf_p == yy_e_buf_p )
- X { /* need more input */
- X if ( yy_e_buf_p >= YY_BUF_LIM )
- X { /* not enough room to do another read */
- X /* see if we can make some room for more chars */
- X
- X yy_n_chars = yy_e_buf_p - yy_b_buf_p;
- X
- X if ( yy_n_chars >= 0 )
- X /* shift down buffer to make room */
- X for ( yy_iii = 0; yy_iii <= yy_n_chars; ++yy_iii )
- X {
- X yy_buf_pos = yy_b_buf_p + yy_iii;
- X yy_ch_buf[yy_iii] = yy_ch_buf[yy_buf_pos];
- X yy_st_buf[yy_iii] = yy_st_buf[yy_buf_pos];
- X }
- X
- X yy_b_buf_p = 0;
- X yy_e_buf_p = yy_n_chars;
- X
- X if ( yy_e_buf_p >= YY_BUF_LIM )
- X YY_FATAL_ERROR( "flex input buffer overflowed" );
- X
- X yy_c_buf_p = yy_e_buf_p;
- X }
- X
- X else if ( yy_saw_eof )
- X {
- saweof: if ( yy_b_buf_p > yy_e_buf_p )
- X {
- X if ( yywrap() )
- X {
- X yy_act = YY_END_TOK;
- X goto do_action;
- X }
- X
- X else
- X {
- X YY_INIT;
- X yy_act = YY_NEW_FILE;
- X goto do_action;
- X }
- X }
- X
- X else /* do a jam to eat up more input */
- X {
- X#ifndef FLEX_INTERACTIVE_SCANNER
- X /* we're going to decrement yy_c_buf_p upon doing
- X * the jam. In this case, that's wrong, since
- X * it points to the last non-jam character. So
- X * we increment it now to counter the decrement.
- X */
- X ++yy_c_buf_p;
- X#endif
- X break;
- X }
- X }
- X
- X YY_INPUT( (yy_ch_buf + yy_c_buf_p + 1), yy_n_chars,
- X YY_MAX_LINE );
- X
- X if ( yy_n_chars == YY_NULL )
- X {
- X if ( yy_saw_eof )
- X YY_FATAL_ERROR( "flex scanner saw EOF twice - shouldn't happen" );
- X yy_saw_eof = 1;
- X goto saweof;
- X }
- X
- X yy_e_buf_p += yy_n_chars;
- X }
- X
- X ++yy_c_buf_p;
- X
- X#ifdef FLEX_USE_ECS
- X yy_sym = e[yy_ch_buf[yy_c_buf_p]];
- X#else
- X yy_sym = yy_ch_buf[yy_c_buf_p];
- X#endif
- X
- X#ifdef FLEX_FULL_TABLE
- X yy_curst = n[yy_curst][yy_sym];
- X
- X#else /* get next state from compressed table */
- X
- X while ( c[b[yy_curst] + yy_sym] != yy_curst )
- X {
- X yy_curst = d[yy_curst];
- X
- X#ifdef FLEX_USE_MECS
- X /* we've arrange it so that templates are never chained
- X * to one another. This means we can afford make a
- X * very simple test to see if we need to convert to
- X * yy_sym's meta-equivalence class without worrying
- X * about erroneously looking up the meta-equivalence
- X * class twice
- X */
- X
- X if ( yy_curst >= YY_TEMPLATE )
- X yy_sym = m[yy_sym];
- X#endif
- X }
- X
- X yy_curst = n[b[yy_curst] + yy_sym];
- X
- X#endif
- X
- X yy_st_buf[yy_c_buf_p] = yy_curst;
- X
- X }
- X#ifdef FLEX_INTERACTIVE_SCANNER
- X while ( b[yy_curst] != YY_JAM_BASE );
- X#else
- X while ( yy_curst != YY_JAM );
- X --yy_c_buf_p; /* put back character we jammed on */
- X
- X#endif
- X
- X if ( yy_c_buf_p >= yy_b_buf_p )
- X { /* we matched some text */
- X yy_curst = yy_st_buf[yy_c_buf_p];
- X yy_lp = l[yy_curst];
- X
- X#ifdef FLEX_REJECT_ENABLED
- find_rule: /* we branch to this label when doing a REJECT */
- X#endif
- X
- X for ( ; ; ) /* until we find what rule we matched */
- X {
- X#ifdef FLEX_REJECT_ENABLED
- X if ( yy_lp && yy_lp < l[yy_curst + 1] )
- X {
- X yy_act = a[yy_lp];
- X goto do_action; /* "continue 2" */
- X }
- X#else
- X if ( yy_lp )
- X {
- X yy_act = yy_lp;
- X goto do_action; /* "continue 2" */
- X }
- X#endif
- X
- X if ( --yy_c_buf_p < yy_b_buf_p )
- X break;
- X
- X yy_curst = yy_st_buf[yy_c_buf_p];
- X yy_lp = l[yy_curst];
- X }
- X }
- X
- X /* if we got this far, then we didn't find any accepting
- X * states
- X */
- X
- X /* so that the default applies to the first char read */
- X ++yy_c_buf_p;
- X
- X yy_act = YY_DO_DEFAULT;
- X }
- X }
- X
- X /*NOTREACHED*/
- X }
- X
- X
- static int unput( c )
- char c;
- X
- X {
- X YY_DO_BEFORE_SCAN; /* undo effects of setting up yytext */
- X
- X if ( yy_c_buf_p == 0 )
- X {
- X register int i;
- X register int yy_buf_pos = YY_BUF_MAX;
- X
- X for ( i = yy_e_buf_p; i >= yy_c_buf_p; --i )
- X {
- X yy_ch_buf[yy_buf_pos] = yy_ch_buf[i];
- X yy_st_buf[yy_buf_pos] = yy_st_buf[i];
- X --yy_buf_pos;
- X }
- X
- X yy_c_buf_p = YY_BUF_MAX - yy_e_buf_p;
- X yy_e_buf_p = YY_BUF_MAX;
- X }
- X
- X if ( yy_c_buf_p <= 0 )
- X YY_FATAL_ERROR( "flex scanner push-back overflow" );
- X
- X if ( yy_c_buf_p >= yy_b_buf_p && yy_ch_buf[yy_c_buf_p] == '\n' )
- X yy_ch_buf[yy_c_buf_p - 1] = '\n';
- X
- X yy_ch_buf[yy_c_buf_p--] = c;
- X
- X YY_DO_BEFORE_ACTION; /* set up yytext again */
- X }
- X
- X
- static int input()
- X
- X {
- X int c;
- X
- X YY_DO_BEFORE_SCAN
- X
- X if ( yy_c_buf_p == yy_e_buf_p )
- X { /* need more input */
- X int yy_n_chars;
- X
- X /* we can throw away the entire current buffer */
- X if ( yy_saw_eof )
- X {
- X if ( yywrap() )
- X return ( EOF );
- X
- X YY_INIT;
- X }
- X
- X yy_b_buf_p = 0;
- X YY_INPUT( yy_ch_buf, yy_n_chars, YY_MAX_LINE );
- X
- X if ( yy_n_chars == YY_NULL )
- X {
- X yy_saw_eof = 1;
- X
- X if ( yywrap() )
- X return ( EOF );
- X
- X YY_INIT;
- X
- X return ( input() );
- X }
- X
- X yy_c_buf_p = -1;
- X yy_e_buf_p = yy_n_chars - 1;
- X }
- X
- X c = yy_ch_buf[++yy_c_buf_p];
- X
- X YY_DO_BEFORE_ACTION;
- X
- X return ( c );
- X }
- X# line 392 "scan.l"
- X
- END_OF_FILE
- if test 36366 -ne `wc -c <'scan.c.dist'`; then
- echo shar: \"'scan.c.dist'\" unpacked with wrong size!
- fi
- # end of 'scan.c.dist'
- fi
- echo shar: End of archive 4 \(of 5\).
- cp /dev/null ark4isdone
- MISSING=""
- for I in 1 2 3 4 5 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 5 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-